package com.youlai.boot.system.service;

import com.youlai.boot.system.model.entity.TaskTable;
import com.youlai.boot.system.model.form.TaskTableForm;
import com.youlai.boot.system.model.query.TaskTableQuery;
import com.youlai.boot.system.model.vo.TaskTableVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * TaskTable服务类
 *
 * @author Gwd
 * @since 2025-03-07 17:09
 */
public interface TaskTableV2Service extends IService<TaskTable> {

    /**
     *TaskTable分页列表
     *
     *
     * @return
     */
    IPage<TaskTableVO> getTaskTablePage(TaskTableQuery queryParams);

    /**
     * 获取TaskTable表单数据
     *
     * @param id TaskTableID
     * @return
     */
    TaskTableForm getTaskTableFormData(Long id);

    /**
     * 新增TaskTable
     *
     * @param formData TaskTable表单对象
     * @return
     */
    boolean saveTaskTable(TaskTableForm formData);

    /**
     * 修改TaskTable
     *
     * @param id   TaskTableID
     * @param formData TaskTable表单对象
     * @return
     */
    boolean updateTaskTable(Long id, TaskTableForm formData);
    IPage<TaskTableVO> getTasktablePage(TaskTableQuery queryParams);

//    IPage<TaskTableVO> getArchivePage(TaskTableQuery queryParams);


    /**
     * 删除TaskTable
     *
     * @param ids TaskTableID，多个以英文逗号(,)分割
     * @return
     */
    boolean deleteTaskTables(String ids);
    boolean updateArchive(Long id,Integer archive);
//    ResponseEntity<byte[]> exportDocument(String format);

    boolean batchUpdateArchiveStatus(List<Long> id, Integer archive);
    /**
     * 修改首页
     *
     * @param id   首页ID
     * @param formData 首页表单对象
     * @return
     */
    boolean updateTasktable(Long id, TaskTableForm formData);
    /**
     * 删除首页
     *
     * @param ids 首页ID，多个以英文逗号(,)分割
     * @return
     */
    boolean deleteTasktables(String ids);
    TaskTableForm getTasktableFormData(Long id);




    List<Map<String,Object>> getTaskCompletionCount();
    int getTotalDoctors();

}
